From: Dan Winship Date: Tue, 2 Mar 2010 18:51:00 +0000 (-0500) Subject: Error out at startup if the GConf schemas are missing X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~10322 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=20d3b1f8b18507cd8644ed98ff06659d04eb2c84;p=gnome-shell.git Error out at startup if the GConf schemas are missing If we don't do this, then boolean/int/list keys will seem to sort of work (but defaulting to false/0/[] instead of the correct schema defaults), but string keys will return null, which will usually cause exceptions or crashes. https://bugzilla.gnome.org/show_bug.cgi?id=611214 --- diff --git a/src/shell-gconf.c b/src/shell-gconf.c index 7073bbdcf..30485d4ad 100644 --- a/src/shell-gconf.c +++ b/src/shell-gconf.c @@ -46,9 +46,21 @@ static void gconf_value_changed (GConfClient *client, const char *key, static void shell_gconf_init (ShellGConf *gconf) { + GConfValue *val; + gconf->client = gconf_client_get_default (); gconf_client_add_dir (gconf->client, SHELL_GCONF_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); + + val = gconf_client_get (gconf->client, + SHELL_GCONF_DIR "/development_tools", NULL); + if (!val) + { + g_error ("GNOME Shell GConf schemas not found.\n" + "This generally indicates a building or packaging problem."); + } + gconf_value_free (val); + g_signal_connect (gconf->client, "value_changed", G_CALLBACK (gconf_value_changed), gconf); }